Conventional flash memory devices define various commands and types of status commands reported to a flash controller. Flash memory vendors determine market trends. Flash memory vendors do not typically design controllers and lack a complete view of flash controllers. Some potentially useful commands are needed that flash memory vendors have not considered. A flash controller vendor can define necessary and useful commands that can help to improve system performance. The flash memory provides basic information on things such as whether a program operation has failed or not failed. In conventional approaches, flash memory has been relatively reliable. Even a one bit program failure was considered unacceptable and reported as a program failure. Such controllers increase the cost by not using memory that is usable, but has errors. Flash controllers implementing error correction code (ECC) decoding are more aggressive and can correct multiple errors per codeword. Improving bit error correction capability will be more and more necessary as the density of flash memory is increased due to a further scaled down cell size. A simple reporting of a program failure if just one or two bits fail to be programmed does not provide adequate information to a flash controller to be efficient.
It would be desirable to implement a flash command that reports a count of the total number of cell program failures and/or a count of the number of cell program failures on a per chunk basis.